package jannex.sql;

import jannex.JannexException;

import java.util.Map;

public interface JxResultSetMetaData extends java.sql.ResultSetMetaData {

    boolean isAutoIncrement(String columnLabel) throws JannexException;

    boolean isSearchable(String columnLabel) throws JannexException;

    boolean isCurrency(String columnLabel) throws JannexException;

    int isNullable(String columnLabel) throws JannexException;

    boolean isSigned(String columnLabel) throws JannexException;

    int getColumnDisplaySize(String columnLabel) throws JannexException;

    String getColumnName(String columnLabel) throws JannexException;

    String getSchemaName(String columnLabel) throws JannexException;

    int getPrecision(String columnLabel) throws JannexException;

    int getScale(String columnLabel) throws JannexException;

    String getTableName(String columnLabel) throws JannexException;

    String getCatalogName(String columnLabel) throws JannexException;

    int getColumnType(String columnLabel) throws JannexException;

    String getColumnTypeName(String columnLabel) throws JannexException;

    boolean isReadOnly(String columnLabel) throws JannexException;

    boolean isWritable(String columnLabel) throws JannexException;

    boolean isDefinitelyWritable(String columnLabel) throws JannexException;

    String getColumnClassName(String columnLabel) throws JannexException;

    int getColumn(String columnLabel) throws JannexException;

    boolean containsColumnLabel(String columnLabel) throws JannexException;

    String[] getColumnLabels() throws JannexException;

    Map<String, Integer> getColumnLabelMap() throws JannexException;

    @Override
    int getColumnCount() throws JannexException;

    @Override
    boolean isAutoIncrement(int column) throws JannexException;

    @Override
    boolean isCaseSensitive(int column) throws JannexException;

    @Override
    boolean isSearchable(int column) throws JannexException;

    @Override
    boolean isCurrency(int column) throws JannexException;

    @Override
    int isNullable(int column) throws JannexException;

    @Override
    boolean isSigned(int column) throws JannexException;

    @Override
    int getColumnDisplaySize(int column) throws JannexException;

    @Override
    String getColumnLabel(int column) throws JannexException;

    @Override
    String getColumnName(int column) throws JannexException;

    @Override
    String getSchemaName(int column) throws JannexException;

    @Override
    int getPrecision(int column) throws JannexException;

    @Override
    int getScale(int column) throws JannexException;

    @Override
    String getTableName(int column) throws JannexException;

    @Override
    String getCatalogName(int column) throws JannexException;

    @Override
    int getColumnType(int column) throws JannexException;

    @Override
    String getColumnTypeName(int column) throws JannexException;

    @Override
    boolean isReadOnly(int column) throws JannexException;

    @Override
    boolean isWritable(int column) throws JannexException;

    @Override
    boolean isDefinitelyWritable(int column) throws JannexException;

    @Override
    String getColumnClassName(int column) throws JannexException;

    @Override
    <T> T unwrap(Class<T> iface) throws JannexException;

    @Override
    boolean isWrapperFor(Class<?> iface) throws JannexException;

}